package com.xiao.dynamic_rule.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.HashMap;
import java.util.List;

/**
 * 规则整体条件封装实体类
 *
 * 触发条件：E事件
 * 画像属性条件：  k3=v3 , k100=v80 , k230=v360
 * 行为属性条件：  U(p1=v3,p2=v2) >= 3次 且  G(p6=v8,p4=v5,p1=v2)>=1
 * 行为次序条件：  依次做过：  W(p1=v4) ->   R(p2=v3) -> F
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RuleParam {
    /**
     * 规则id
     */
    private String ruleId;

    /**
     * 触发事件条件，目前只是某一个事件触发，后面灵活一点应该触发条件更复杂些（做过某事件几次）
     */
    private RuleParamAtomic triggerParam;
    /**
     * 画像属性类条件
     */
    private HashMap<String,String> userProfileParams;
    /**
     * 行为属性类条件
     */
    private List<RuleParamAtomic> userActionCountParams;
    /**
     * 行为序列类条件
     */
    private List<RuleParamAtomic> userActionSequenceParams;

    /**
     * 行为序列类条件clickhouse查询sql
     */
    private String actionSequenceQuerySql;

    /**
     * 用于记录查询服务返回的序列中匹配的最大步骤号
     */
    private int userActionSequenceQueriedMaxStep;
}
